#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
export DH_VERBOSE = 1


# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed


%:
	dh $@


# dh_make generated override targets
# This is example for Cmake (See https://bugs.debian.org/641051 )
#override_dh_auto_configure:
#	dh_auto_configure -- \
#	-DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)

pyver=3.13t
prefix=/opt
# DEB_HOST_MULTIARCH 的值形如 x86_64-linux-gnu。
# lib_dir=$(prefix)/lib/$(DEB_HOST_MULTIARCH)
lib_dir=$(prefix)/lib
pkg_name=python$(pyver)-all-in-one
# 前置 $(PWD) 来转为绝对路径。因为有些工具（如 dh_shlibdeps -l）不能正确处理相对路径。
tmp_install_dir=$(PWD)/debian/$(pkg_name)
tmp_lib_dir=$(tmp_install_dir)/$(lib_dir)

# 使用 configure --libdir=$(prefix)/lib/$(DEB_HOST_MULTIARCH) 会导致 
# “Could not find platform dependent libraries <exec_prefix>” 错误，尚不清楚如何解决。
# 暂时使用 --exec_prefix=$(prefix) 并且不指定 --libdir（默认 == prefix）。
override_dh_auto_configure:
	./configure --disable-gil --disable-test-modules --enable-loadable-sqlite-extensions --with-system-expat --prefix=$(prefix) --exec_prefix=$(prefix)

# * altinstall 不会创建 $(prefix)/bin/python3 ，允许多版本共存。
# * 使用 --enable-shared 时，文件名 libpython3.so 会妨碍多版本共存。即使重命名为 libpython3.so.$(pyver)，安装 deb 时也会自动创建符号链接 libpython3.so -> libpython3.so.$(pyver) 。
#   libpython3.so 这个文件似乎也没什么用，因此删除。
# * 安装到非标准位置（/opt）且使用 --enable-shared 时，需要相应的 /etc/ld.so.conf.d/$(pkg_name).conf 文件指定共享库的搜索路径。
# * 删除 `__pycache__/*.pyc` 文件，减少安装体积，以少量启动性能为代价。
override_dh_auto_install:
	$(MAKE) altinstall DESTDIR=$(tmp_install_dir) prefix=$(prefix)
	find $(tmp_install_dir) -type d -name __pycache__ -exec rm -Rf {} \; || true
	# rm $(tmp_lib_dir)/libpython3.so
	# mkdir -p $(tmp_install_dir)/etc/ld.so.conf.d/ && echo "$(lib_dir)" > $(tmp_install_dir)/etc/ld.so.conf.d/$(pkg_name).conf

# 安装到标准位置（/usr）时一般不需要 override_dh_shlibdeps ，否则需要用 -l 参数指定共享库的搜索路径。
override_dh_shlibdeps:
	dh_shlibdeps -l$(tmp_lib_dir)
